package mysql8学习.初级.第09章_子查询;

/**
 * IN          等于列表中的任意一个
 * ANY         需要和单行比较操作符一起使用，和子查询返回的某一个值比较
 * ALL         需要和单行比较操作符一起使用，和子查询返回的所有值比较
 *
 * SOME        实际上是ANY的别名，作用相同，一般常使用ANY
 *
 * SELECT employee_id,last_name,job_id,salary
 * FROM employees
 * WHERE job_id <> 'IT_PROG'
 * AND salary < ANY (
 * 		SELECT salary
 * 		FROM employees
 * 		WHERE job_id = 'IT_PROG'
 * 		);
 *
 * #题目：返回其它job_id中比job_id为‘IT_PROG’部门所有工资低的员工的员工号、
 * #姓名、job_id 以及salary
 * SELECT employee_id,last_name,job_id,salary
 * FROM employees
 * WHERE job_id <> 'IT_PROG'
 * AND salary < ALL (
 * 		SELECT salary
 * 		FROM employees
 * 		WHERE job_id = 'IT_PROG'
 * 		);
 *
 *
 * mysql 聚合函数  (不可以嵌套)  oracle 可以嵌套
 * 查询平均工资最低的部门id
 * 可以先将平均工资查出来  当成一个表  在操作  （注意 要加别名）
 *  效率高低   下篇再将
 *
 *  #题目：查询平均工资最低的部门id
 * #MySQL中聚合函数是不能嵌套使用的。
 * #方式1：
 * SELECT department_id
 * FROM employees
 * GROUP BY department_id
 * HAVING AVG(salary) = (
 * 			SELECT MIN(avg_sal)
 * 			FROM(
 * 				SELECT AVG(salary) avg_sal
 * 				FROM employees
 * 				GROUP BY department_id
 * 				) t_dept_avg_sal
 * 			);
 *
 * 空值情况：
 *      因为任何数与 null 比都是null
 *      所以 in 影响不大，但是查不出空的，
 *      但是 not in  即不属于，当任何数与null 比的时候
 *      相当于 集合A  ！= 集合B
 *      当比到  NULL 时 永远是不满足
 *
 */
public class D_多行子查询 {
    public static void main(String[] args) {

    }
}
